
fis.set('project.files', ['/src/**']);
// fis.set('project.ignore', ['*.iml', '.idea', 'fis-conf.js']);

fis.match('src/(**)', {
  release: '/$1'
});

fis.match('*.{js,css,png,jpg,jpeg,less}', {
  useHash: true
});

fis.match('*.tlp.html', {
  release: false
});

fis.match('page/(*.html)', {
  release: '/$1',
  useMap: true
});

fis.match('*.less', {
  parser: fis.plugin('less'),
  rExt: '.css'
});

//使第三方库的moduleId为plugins的子目录名，通常你应该为插件创建一个与moduleId相同的目录名。
//比如，jquery文件中define('jquery', ...)，那么你应该创建一个jquery的目录名，这个目录名就是
//你使用AMD规范引用插件的模块ID。
fis.match('/src/js/plugins/(*)/**.js', {
  id: '$1',
  useSameNameRequire: true
});

// AMD支持
// ---------------------------------------------
// fis.match('::package', {
//   postpackager: fis.plugin('loader', {
//     resourceType: 'amd',
//     useInlineMap: true
//   })
// });

fis.hook('amd', {
  /**
   * 此属性很重要，如果设置成false，那么在页面中require(['moduleId'])会被当成异步依赖处理，无法完成依赖合并。
   * 只有require('moduleId')这样使用loader插件才会做合并，但是这会导致requirejs的出错，所以要设置该属性，将
   * 异步依赖当成同步处理，这样在不违反AMD的加载规范时，也能让loader插件帮我们合并依赖文件。
   */
  globalAsyncAsSync: true,
  packages: [
    {name: 'mod', location: './src/js/module'},
    {name: 'comp', location: './src/js/component'}
  ]
});


// 生产环境打包配置
// ---------------------------------------------

fis.media('prod').match('::package', {
  resourceType: 'amd',
  useInlineMap: false,
  postpackager: fis.plugin('loader', {
    allInOne: {
      ignore: ['/src/js/plugins/**', '/src/require.js', '**/kit.js'],
      js: function (file) {
        return "/pkg/js/" + file.filename + "_all.js";
      },
      css: function (file) {
        return "/pkg/css/" + file.filename + "_all.css";
      }
    }
  })
});